/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fr.unice.miage.projetjava.managers;

import fr.unice.miage.projetjava.entities.LigneDePanier;
import fr.unice.miage.projetjava.entities.Produit;
import fr.unice.miage.projetjava.*;
import java.util.ArrayList;
import java.util.Collection;
import javax.ejb.Stateless;

/**
 *
 * @author Olivier
 */
@Stateless
public class GestionnaireDePanierBean implements GestionnaireDePanierLocal {

    private Collection<LigneDePanier> listeldp;

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method" or "Web Service > Add Operation")

    public GestionnaireDePanierBean()
    {
        this.listeldp = new ArrayList<LigneDePanier>();
    }

    public void ajouterProduit(Produit prod)
    {
        LigneDePanier ldp = getLigneDePanier(prod);
        if(ldp == null)
        {
            listeldp.add(new LigneDePanier(prod, 1));
        }
        else
        {
            int newQuantite = ldp.getQuantite()+1;
            ldp.setQuantite(newQuantite);
        }
    }

    public void retirerProduit(Produit prod)
    {
        LigneDePanier ldp = getLigneDePanier(prod);
        if(ldp.getQuantite() == 1)
        {
            listeldp.remove(ldp);
        }
        else
        {
            int newQuantite = ldp.getQuantite()-1;
            ldp.setQuantite(newQuantite);
        }
    }

    public void viderPanier()
    {
        this.listeldp = new ArrayList<LigneDePanier>();
    }

    public LigneDePanier getLigneDePanier(Produit prod)
    {
        for (LigneDePanier ldp : listeldp)
        {
            if(ldp.getProd().equals(prod))
                return ldp;
        }
        return null;
    }

    public float getTotalPanier()
    {
        float total = 0;
        for (LigneDePanier ldp : listeldp)
        {
            total += ldp.getTotalLigne();
        }
        return total;
    }

    public int getNombreProduit()
    {
        int total = 0;
        for (LigneDePanier ldp : listeldp)
        {
            total += ldp.getQuantite();
        }
        return total;
    }

    public Collection<LigneDePanier> getListeldp() {
        return listeldp;
    }

    public void setListeldp(Collection<LigneDePanier> listeldp) {
        this.listeldp = listeldp;
    }
 
}
